$(function(){
	
	var selectNode = null;
	
	$('#menu-list').tree({
		onSelect : function(node){
			console.log(node);
			del_datagrid();
			selectMenuListByPid(node.id);
			selectNode = node;
		}
	});
	
	//菜单树
	$('#menu-tree').panel({
		fit : true,
	});
	
	//加载菜单树数据
	function loadMenuTree(){
		$.ajax({
			url : GLOBAL.base + '/menu/tree',
			type : 'POST',
			dataType : 'json',
			async : false,
			success : function(data){
				if(data.retData.code == 0){
					var menuList = data.retData.data.menuList;
					console.log(menuList);
					$('#menu-list').tree("loadData",menuList);
					getSelected();
					selectMenuListByPid(selectNode.id);
				}else{
					$.messager.alert('警告',data.retData.msg,'warning');
				}
			}
		});
	}
	loadMenuTree();
	
	function loadMenuTree2(){
		$.ajax({
			url : GLOBAL.base + '/menu/tree',
			type : 'POST',
			dataType : 'json',
			ansyc : false,
			success : function(data){
				if(data.retData.code == 0){
					var menuList = data.retData.data.menuList;
					$('#menu-list').tree("loadData",menuList);
				}else{
					$.messager.alert('警告',data.retData.msg,'warning');
				}
			}
		});
	}
	
	//子节点列表
	$('#menu-manage').datagrid({
		toolbar : '#menu_manager_tool',
		striped : true,
		rownumbers : true,
		border : false,
		sortName : 'date',
		sortOrder : 'desc',
		columns : [[
			           {
			        	   field : 'id',
			        	   title : '编号',
			        	   width : 100,
			        	   checkbox : true,
			           },
			           {
			        	   field : 'menuName',
			        	   title : '菜单名称',
			        	   width : 100,
			           },
			           {
			        	   field : 'url',
			        	   title : 'URL',
			        	   width : 300,
			           },
		           ]],
	});
	
	
	//根据父节点查询子节点列表
	function selectMenuListByPid(pid){
		$.ajax({
			url : GLOBAL.base +'/menu/selectMenuListByPid',
			type : 'POST',
			data : {
				parentId : pid,
			},
			success : function(data){
				if(data.retData.code == 0){
					var menuList = data.retData.data.menuList;
					for (var i = 0; i < menuList.length; i++) {
						var a = {
							id : menuList[i].menuId,	
							menuName : menuList[i].menuName,
							url : menuList[i].url,
						};
						$('#menu-manage').datagrid('appendRow',a);
					}
				}else{
					$.messager.alert('警告',data.retData.msg,'warning');
				}
			}
		});
	}
	
	//添加菜单
	$("#menu_add").dialog({
		width : 350,
		title : '添加菜单',
		modal : true,
		closed : true,
		iconCls : 'icon-add-new',
		buttons :[{
			text : '提交',
			iconCls : 'icon-add-new',
			handler : function(){
				if($("#menu_add").form('validate')){
					$.ajax({
						url : GLOBAL.base +'/menu/save',
						type : 'POST',
						data : {
							menuName : $("input[name=menu_name]").val(),
							url : $("input[name=menu_url]").val(),
							parentId : selectNode.id,
						},
						beforeSend : function(){
							$.messager.progress({
								text : '正在新增中...',
							});
						},
						success : function(data){
							$.messager.progress('close');
							if(data.retData.code == 0){
								$.messager.show({
									title : '提示',
									msg : '新增菜单成功',
								});
								$("#menu_add").dialog('close');
								loadMenuTree2(); 
								del_datagrid();
								selectMenuListByPid(selectNode.id);
							}else{
								$.messager.alert('警告',data.retData.msg,'warning');
							}
						}
					});
				}
			}
		}],
	});
	
	//编辑菜单
	$("#menu_edit").dialog({
		width : 350,
		title : '编辑菜单',
		modal : true,
		closed : true,
		iconCls : 'icon-edit-new',
		buttons :[{
			text : '提交',
			iconCls : 'icon-edit-new',
			handler : function(){
				if($("#menu_edit").form('validate')){
					var rows = $('#menu-manage').datagrid('getSelections');
 					$.ajax({
						url : GLOBAL.base +'/menu/update',
						type : 'POST',
						data : {
							menuId : rows[0].id,
							menuName : $("input[name=menu_name_edit]").val(),
							menuName : $("input[name=menu_name_edit]").val(),
							url : $("input[name=menu_url_edit]").val(),
						},
						beforeSend : function(){
							$.messager.progress({
								text : '正在修改中...',
							});
						},
						success : function(data){
							$.messager.progress('close');
							if(data.retData.code == 0){
								$.messager.show({
									title : '提示',
									msg : '编辑菜单成功',
								});
								$("#menu_edit").dialog('close');
								del_datagrid();
								selectMenuListByPid(selectNode.id);
							}else{
								$.messager.alert('警告',data.retData.msg,'warning');
							}
						}
					});
				}
			}
		}],
	});
	
	//清空所有datagrid数据
	function del_datagrid(){
		var item = $("#menu-manage").datagrid('getRows');
		if(item){
			for (var i = item.length-1; i >=0; i--) {
				var index = $("#menu-manage").datagrid('getRowIndex',item[i]);
				$("#menu-manage").datagrid('deleteRow',index);
			}
		}
	}
	
	//获取被选中节点
	function getSelected(){
		var node = $('#menu-list').tree('getSelected');
		if(node == null){
			node = $('#menu-list').tree('getRoot');
		}
		selectNode = node;
	}
	

	//menu_manager_tool
	menu_manager_tool = {
			reload : function () {
				del_datagrid();
				selectMenuListByPid(selectNode.id);
			},
			redo : function () {
				$('#menu-manage').datagrid('unselectAll');
			},
			add : function(){
				$("#menu_add").dialog('open');
				$("#input[name=menu_name]").focus();
			},
			remove : function(){
				var rows = $('#menu-manage').datagrid('getSelections');
				console.log(rows);
				if(rows.length>0){
					$.messager.confirm('确认操作','确认要删除所选的菜单吗？',function(flag){
						if(flag){
							var ids = [];
							for (var i = 0; i < rows.length; i++) {
								ids.push(rows[i].id);
							}
							console.log(ids);
							$.ajax({
								url : GLOBAL.base + '/menu/deleteMenu',
								type : 'POST',
								data : {
									ids : ids.join(','),
								},
								beforeSend : function(){
									$.messager.progress({
										text : '正在删除中...',
									});
								},
								success : function(data){
									$.messager.progress('close');
									if(data.retData.code == 0){
										$.messager.show({
											title : '提示',
											msg : '删除菜单成功',
										});
										del_datagrid();
										loadMenuTree2();
										console.log(selectNode);
										selectMenuListByPid(selectNode.id);
									}else{
										$.messager.alert('警告',data.retData.msg,'warning');
									}
								}
							});
						}
					});
				}else{
					$.messager.alert('提示','请选择要删除的记录！','info');
				}
			},
			edit : function(){
				var rows = $('#menu-manage').datagrid('getSelections');
				if(rows.length>1){
					$.messager.alert('警告操作！','编辑记录只能选定一条数据','warning');
				}else if(rows.length==1){
					$('#menu_edit').form('load',{
						menu_name_edit : rows[0].menuName,
						menu_url_edit : rows[0].url,
					}).dialog('open');
				}else{
					$.messager.alert('警告操作','编辑记录至少选定一条数据','warning');
				}
			}
	};
});